package flyweight;

/**
 * Tree 是我们要创建的具体的数，是具体的实例对象。
 * 其中成员 (x,y) 是位置信息，是 “外在状态”，不可共享。
 * 外在状态的信息由客户端提供，即外在状态的信息保存在客户端。
 */
public class Tree {
    private TreeType treeType;
    private int x;
    private int y;

    public Tree(TreeType treeType, int x, int y) {
        this.treeType = treeType;
        this.x = x;
        this.y = y;
    }

    public void draw() {
        // Draw the tree using treeType and (x, y) coordinates
        System.out.println("Drawing a " + treeType.getColor() + " " +
                treeType.getType() + " tree at (" + x + ", " + y + ")");
    }
}
